package com.zw.pdm.module.report.mapper;

import com.zw.pdm.entity.rep.VerifyProcess;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * @Description:
 *
 * @Author: China.sgl
 * @Date: 2020/8/8 13:28
 */
public interface VerifyProcessMapper {

    /** 按 计划单ID 删除 */
    int delBySheetId(Integer id);

    int delByFileSheetId(Integer id);

    /** 按 技术说明ID 删除 */
    int delByTecNoteId(Integer id);

    /** 按 涂装ID 删除 */
    int delByCoatId(Integer id);

    /** 按 计划单ID 查 当前审核流程 */
    VerifyProcess findCurVpBySheetId(Integer id);

    /** 按 存档ID 查 当前审核流程 */
    VerifyProcess findCurVpByFileSheetId(Integer id);

    /** 按 存档ID 查 当前下发审核流程 */
    VerifyProcess findCurVpByFileConfirmId(Integer id);

    /** 按 技术说明ID 查 当前审核流程 */
    VerifyProcess findCurVpByTecNoteId(Integer id);

    /** 按 涂装ID 查 当前审核流程 */
    VerifyProcess findCurVpByCoatId(Integer id);

    /** 按 制作件ID 查 当前制作件的审核流程 */
    VerifyProcess findMakeCurVpBySheetId(Integer id);

    /** 按 图纸变更单id 查 当前图纸变更审核流程 */
    VerifyProcess findDrawCurVpBySheetId(Integer id);

    /** 查询下一条审核流程 */
    VerifyProcess findNextVp(VerifyProcess vp);

    /** 查询存档下一条审核流程 */
    VerifyProcess findFileNextVp(VerifyProcess vp);

    /** 查询下一条制作件审核流程 */
    VerifyProcess findMakeNextVp(VerifyProcess vp);

    /** 查询下一条图纸变更审核流程 */
    VerifyProcess findDrawNextVp(VerifyProcess vp);

    /** 查询下一条技术说明审核流程 */
    VerifyProcess findTecNoteNextVp(VerifyProcess vp);

    /** 查询下一条涂装审核流程 */
    VerifyProcess findCoatNextVp(VerifyProcess vp);

    /** 查询上一条审核流程 */
    VerifyProcess findPreVp(VerifyProcess vp);

    /** 查询存档上一条审核流程 */
    VerifyProcess findFilePreVp(VerifyProcess vp);

    /** 查询上一条技术说明审核流程 */
    VerifyProcess findTecNotePreVp(VerifyProcess vp);

    /** 查询上一条涂装审核流程 */
    VerifyProcess findCoatPreVp(VerifyProcess vp);

    /** 按ID修改当前标识 */
    int updateCurById(@Param("id") Integer id, @Param("cur") Integer cur);

    /** 按ID修改当前标识和状态 */
    int updateStatusAndCurAndTimeById(@Param("id") Integer id, @Param("status") Integer status,
                                      @Param("cur") Integer cur, @Param("time")Date time);

    /** 按ID修改存档的当前标识和状态 */
    int updateFileStatusAndCurAndTimeById(@Param("id") Integer id, @Param("status") Integer status,
                                      @Param("cur") Integer cur, @Param("time")Date time);
    /** 按ID修改当前标识和状态 */
    int updateMakeStatusAndCurAndTimeById(@Param("id") Integer id, @Param("status") Integer status,
                                      @Param("cur") Integer cur, @Param("time")Date time);

    /** 按ID修改图纸变更单当前标识和状态 */
    int updateDrawStatusAndCurAndTimeById(@Param("id") Integer id, @Param("status") Integer status,
                                      @Param("cur") Integer cur, @Param("time")Date time);

    /** 按 sheet_id 查询审核流程 */
    List<VerifyProcess> findVpBySheetId(Integer sheetId);

    /** myf按 make_sheet_id 查询制作件清单的审核流程 */
    List<VerifyProcess> findVpMakeBySheetId(Integer sheetId);

    /** myf按 make_sheet_id 查询制作件清单的审核流程 */
    List<VerifyProcess> findVpDrawySheetId(Integer sheetId);

    /** myf按 file_sheet_id 查询存档清单的审核流程 */
    List<VerifyProcess> findVpFileBySheetId(Integer sheetId);

    /** 查询下一条审核流程, 无论下一条是否存在当前审核标识 */
    VerifyProcess findNextVerifyProcess(VerifyProcess vp);

    /** 按 tec_note_id 查询审核流程 */
    List<VerifyProcess> findDsnTectNoteById(Integer sheetId);

    /** 按 coat_id 查询审核流程 */
    List<VerifyProcess> findDsnCoatById(Integer sheetId);

    /** 按 制作件ID 删除 */
    int delByMakeSheetId(Integer id);

    /** 按 图纸变更单 删除 */
    int delByDrawSheetId(Integer id);

    /** 查询制作件上一条审核流程 */
    VerifyProcess findMakePreVp(VerifyProcess vp);

    /** 查询图纸变更单的上一条审核流程 */
    VerifyProcess findDrawPreVp(VerifyProcess vp);

    /** 按工艺卡ID 删除 */
    int delByCardId(Integer id);



}
